CodeIgniter এ Pagination এবং Search ইমপ্লিমেন্ট করা সহজ। Pagination ব্যবহারকারীদের বড় ডেটাসেট থেকে নির্দিষ্ট সংখ্যক ডেটা দেখানোর সুযোগ দেয়। Pagination এবং Search এর সাথে Complex Queries যোগ করে উন্নত ডেটা ফিল্টারিং এবং প্রদর্শন করা যায়।
CodeIgniter এর Pagination লাইব্রেরি ব্যবহার করে সহজেই Pagination ইমপ্লিমেন্ট করা যায়।
ধরুন, products
নামে একটি ডাটাবেস টেবিল রয়েছে:
CREATE TABLE products (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(100) NOT NULL,
description TEXT,
price DECIMAL(10, 2) NOT NULL
);
Controller ফাইলে Pagination সেটআপ করুন:
namespace App\Controllers;
use App\Models\ProductModel;
class ProductController extends BaseController
{
public function index()
{
$model = new ProductModel();
// পেজিনেশন সেটআপ
$perPage = 10; // প্রতি পৃষ্ঠায় ডেটা সংখ্যা
$page = $this->request->getVar('page') ?? 1; // বর্তমান পৃষ্ঠা
$data['products'] = $model
->paginate($perPage, 'group1', $page); // পেজিনেশন
$data['pager'] = $model->pager; // পেজার লোড
return view('product_list', $data);
}
}
Pagination লিঙ্ক দেখানোর জন্য View ফাইলে নিচের কোড যোগ করুন:
<h1>Product List</h1>
<ul>
<?php foreach ($products as $product): ?>
<li><?= $product['name']; ?> - $<?= $product['price']; ?></li>
<?php endforeach; ?>
</ul>
<!-- পেজিনেশন লিঙ্ক -->
<?= $pager->links('group1', 'default_full') ?>
Pagination এর সাথে Search ফিচার যুক্ত করার জন্য Complex Query ব্যবহার করতে পারেন।
Controller এ Search ফিল্টারিং যোগ করুন:
public function index()
{
$model = new ProductModel();
$search = $this->request->getVar('search'); // সার্চ কিওয়ার্ড
$perPage = 10;
$page = $this->request->getVar('page') ?? 1;
// সার্চ কন্ডিশন
$builder = $model->builder();
if ($search) {
$builder->like('name', $search);
$builder->orLike('description', $search);
}
// পেজিনেশন
$data['products'] = $builder->paginate($perPage, 'group1', $page);
$data['pager'] = $builder->pager;
$data['search'] = $search;
return view('product_list', $data);
}
Search ফর্ম এবং Pagination লিঙ্ক প্রদর্শনের জন্য View ফাইলে কোড যোগ করুন:
<h1>Product List</h1>
<!-- সার্চ ফর্ম -->
<form method="get" action="/products">
<input type="text" name="search" value="<?= $search ?? ''; ?>" placeholder="Search products">
<button type="submit">Search</button>
</form>
<ul>
<?php foreach ($products as $product): ?>
<li><?= $product['name']; ?> - $<?= $product['price']; ?></li>
<?php endforeach; ?>
</ul>
<!-- পেজিনেশন লিঙ্ক -->
<?= $pager->links('group1', 'default_full') ?>
Pagination এবং Search এর সাথে Complex Query যুক্ত করা:
public function index()
{
$model = new ProductModel();
$search = $this->request->getVar('search');
$priceMin = $this->request->getVar('price_min');
$priceMax = $this->request->getVar('price_max');
$perPage = 10;
$page = $this->request->getVar('page') ?? 1;
// Complex Query
$builder = $model->builder();
if ($search) {
$builder->like('name', $search);
$builder->orLike('description', $search);
}
if ($priceMin) {
$builder->where('price >=', $priceMin);
}
if ($priceMax) {
$builder->where('price <=', $priceMax);
}
$data['products'] = $builder->paginate($perPage, 'group1', $page);
$data['pager'] = $builder->pager;
$data['search'] = $search;
$data['price_min'] = $priceMin;
$data['price_max'] = $priceMax;
return view('product_list', $data);
}
<h1>Product List</h1>
<!-- Complex Search Form -->
<form method="get" action="/products">
<input type="text" name="search" value="<?= $search ?? ''; ?>" placeholder="Search products">
<input type="number" name="price_min" value="<?= $price_min ?? ''; ?>" placeholder="Min Price">
<input type="number" name="price_max" value="<?= $price_max ?? ''; ?>" placeholder="Max Price">
<button type="submit">Filter</button>
</form>
<ul>
<?php foreach ($products as $product): ?>
<li><?= $product['name']; ?> - $<?= $product['price']; ?></li>
<?php endforeach; ?>
</ul>
<!-- Pagination Links -->
<?= $pager->links('group1', 'default_full') ?>
CodeIgniter এর Pagination এবং Search ফিচার Complex Queries এর সাথে ব্যবহার করে উন্নত ডেটা ম্যানেজমেন্ট সিস্টেম তৈরি করা যায়। উপরের উদাহরণ অনুসরণ করে সহজেই এই ফিচারগুলো আপনার অ্যাপ্লিকেশনে যুক্ত করতে পারবেন।